package com.cwz.exception;

import com.cwz.exception.ErrorEnum;

/**
 * 自定义业务异常类 用于抛出业务层的异常
 * 继承官方的运行时异常RuntimeException
 * 自定义异常继承Exception和RuntimeException都可以
 * 区别：前者是编译时异常 编译时必须捕捉或向上抛出  后者是运行时异常 可以不捕捉
 * 官方的异常类只能携带一个String类型的异常消息
 * 我们现在需要携带两个异常消息：错误码和错误信息
 * @author wenZhen
 * @create 2024-08-05 13:57
 */
public class ServiceException extends RuntimeException{

    //使用自定义的枚举类型作为自定义异常的成员变量
    private ErrorEnum errorEnum;


    public ServiceException(ErrorEnum errorEnum){
        //把枚举对象的消息取出来  传递给父类构造方法 用于初始化父类中的异常信息
        super(errorEnum.getMsg());
        this.errorEnum=errorEnum;
    }


    //对外暴露一个get方法 用于返回这个枚举对象
    public ErrorEnum getErrorEnum(){
        return errorEnum;
    }


}
